#include "Wire.h" // imports the wire library for talking over I2C #include #include #include #define ONE_WIRE_BUS 5 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); float Celcius=0; int buttonPin = 2; // momentary push button on pin 0 int oldButtonVal = 0; #define NUM_PIXEL 50 #define PIN 6 Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_PIXEL, PIN, NEO_GRB + NEO_KHZ800); int nPatterns = 3; int lightPattern = 1; int out =0; int t =0; void setup() { Serial.begin(9600); //turn on serial monitor strip.begin(); clearStrip(); strip.show(); strip.setBrightness(10); pinMode(buttonPin, INPUT); digitalWrite(buttonPin, HIGH); // button pin is HIGH, so it drops to 0 if pressed sensors.begin(); } void testing(){ for(int L = 0; L<50; L++) { clearStrip(); strip.setPixelColor(L,wheel(((205+(L*3)) & 255)));//Gradient from blue (cold) to green (ok) to red (warm), first value here 205 = start color, second value here 42 = end color strip.show(); delay(100); } for(int L = 49; L>=0; L--) { clearStrip(); strip.setPixelColor(L,wheel(((205+(L*3)) & 255)));//Gradient from blue (cold) to green (ok) to red (warm), first value here 205 = start color, second value here 42 = end color strip.show(); delay(100); } delay(1000); } void dot() { sensors.requestTemperatures(); Celcius=sensors.getTempCByIndex(0)*2; int t = map(Celcius, 20, 70, 0, NUM_PIXEL); for(uint16_t L = 0; L nPatterns) lightPattern = 1; oldButtonVal = buttonVal; switch(lightPattern) { case 1: dot(); break; case 2: line(); break; case 3: testing(); break; } } //Color wheel ################################################################ uint32_t wheel(byte WheelPos) { if(WheelPos < 85) { return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0); } else if(WheelPos < 205) { WheelPos -= 85; return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3); } else { WheelPos -= 205; return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3); } } void clearStrip(){ for(int i = 0; i < NUM_PIXEL; i++) { strip.setPixelColor(i, 0); } }